function TKurentHhClient() {
    this.config={
        appId:"",
        host:"",
        port:443,
        uid:"",
        pwd:"",
        localVideio: null ,
        remoteVideo: null,
        kurentUrl: "wss://wss.hhdata.cn:8433/kurento",
        kmsPeerOptions: {
            configuration: {
                "iceServers": [
                    {
                        urls: "stun:223.68.161.139:3478"
                    },
                    {
                        urls: ["turn:223.68.161.139:3478"],
                        username: "kurento",
                        credential: "kurento"
                    }
                ]
            },
            mediaConstraints: {
                audio: true,
                video: {width: {exact: 1280}, height: {exact: 720}}
            }
        },
        kmsPeerTypes: {
            send: kurentoUtils.WebRtcPeer.WebRtcPeerSendonly,
            rec: kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly,
            sendRec: kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv
        }
    };
    this.datas = {
        localHostId:"",
        mqClient:  null ,
        kmsClient: null ,
        devices:{},
        pipe : null ,
        peer: null ,
        end: null ,
        hubPort: null ,
        currentCamera:{
            index:0
        }
    };
    this.events= {};
    this.cb = function (callback , p0, p1, p2) {
        var me = this;
        try{
            if( callback){
                callback(p0,p1,p2);
            }
        }
        catch (e) {
            console.log(e);
        }
    };
    this.getKurentoClient = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.initPeer = function (onInit) {
        var me = this;
        try{
            var opts = JSON.parse(JSON.stringify(me.config.kmsPeerOptions));
            opts.localVideo = me.config.localVideio;
            opts.remoteVideo = me.config.remoteVideo;
            var peer = kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv(opts, function () {
                me.datas.peer = peer;
                me.cb(onInit , peer);
            })
        }
        catch (e) {
            console.log(e);
        }
    };
    this.connect = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.regist = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.bindPeerEnd = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.setCameraId = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.switchCamera = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.shareScreen = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.toggleAudio = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.toggleVideo = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
    this.togglePlayMute = function () {
        var me = this;
        try{

        }
        catch (e) {
            console.log(e);
        }
    };
}
